home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 24 / AACD 24.iso / AACD / Graphics / TVPaint / Rexx / LineShaky.rx < prev    next >
Encoding:
Text File  |  1995-11-07  |  960 b   |  101 lines

  1. /*
  2.     param line
  3.  
  4.     Draw a shaky line
  5.     Modify w: the width of the line
  6.     Modify l: the lenght of the step on the line
  7.  
  8. */
  9.  
  10. address 'rexx_TVPaint'
  11.     
  12.     parse ARG m x1 y1 x2 y2 b
  13.     if(m~='Line')then
  14.     do
  15.         tv_warn 'I need LINE parameters'
  16.         exit
  17.     end
  18.  
  19.  
  20.     w=5
  21.     l=5
  22.  
  23.  
  24.     tv_UpdateUndo
  25.     x=x1
  26.     y=y1
  27.  
  28.     iy=1
  29.     dy=y2-y1
  30.     if (dy<0) then
  31.     do
  32.         dy=-dy
  33.         iy=-1
  34.     end
  35.  
  36.  
  37.     ix=1
  38.     dx=x2-x1
  39.     if (dx<0) then
  40.     do
  41.         dx=-dx
  42.         ix=-1
  43.     end
  44.  
  45.     xb=x
  46.     yb=y
  47.     xa=x
  48.     ya=y
  49.  
  50.     if (dx>dy) then
  51.     do
  52.         d=dx
  53.         do while (x~==x2)
  54.  
  55.             x=x+ix
  56.             d=d-dy
  57.  
  58.             if (d<0) then
  59.             do
  60.                 y=y+iy
  61.                 d=d+dx
  62.             end
  63.  
  64.             if((x%l)*l == x) then
  65.             do
  66.  
  67.                 xa=x+random(0,w,time('S'))
  68.                 ya=y+random(0,w,time('S'))
  69.                 tv_line xb yb xa ya b
  70.                 xb=xa
  71.                 yb=ya
  72.             end
  73.         end
  74.     end
  75.     else
  76.     do
  77.         d=dy
  78.         do while (y ~==y2)
  79.  
  80.             y=y+iy
  81.             d=d-dx
  82.  
  83.             if (d<0) then
  84.             do
  85.                 x=x+ix
  86.                 d=d+dy
  87.             end
  88.             if((y%l)*l == y) then
  89.             do
  90.  
  91.                 xa=x+random(0,w)
  92.                 ya=y+random(0,w)
  93.                 tv_line xa ya xb yb b
  94.                 xb=xa
  95.                 yb=ya
  96.             end
  97.         end
  98.     end
  99.  
  100.  
  101.